home *** CD-ROM | disk | FTP | other *** search
- ' PROPNAME.BAS
- ' by Tika Carr
- ' January 23, 1997
- ' Inspired by Bucky Carr's request in QUIK_BAS Echo
- '
- ' Donated to the public domain
- ' No warranties or guarantees are expressed or implied.
- '
- ' Purpose: To properly capitalize just about any type of name
-
- DECLARE FUNCTION ProperName$ (Name$)
-
- CLS
-
- Name$ = "Adrian douglas mcDonAld-Van MACentire o'mArray"
- PRINT "Processing Name: "; Name$
- P$ = ProperName$(Name$)
- PRINT "The Proper Capitalization is: "; P$
-
- FUNCTION ProperName$ (Name$)
-
- 'First, make the entire name all lower case
- Name$ = LCASE$(Name$)
-
- 'Loop works until end of name.
- DO UNTIL Marker = LEN(Name$) - 1
- Marker = Marker + 1
- 'Get part of name (up until a space is found)
- Temp$ = ""
- DO WHILE Separator$ <> " " AND Separator$ <> "-"
- Separator$ = MID$(Name$, Marker, 1)
- Temp$ = Temp$ + MID$(Name$, Marker, 1)
- IF Marker = LEN(Name$) THEN EXIT DO
- Marker = Marker + 1
- LOOP
-
- 'Capitalize first letter
- MID$(Temp$, 1, 1) = UCASE$(LEFT$(Temp$, 1))
- 'La Mc Le and apostrophe
- Check$ = LEFT$(Temp$, 2)
- IF Check$ = "La" OR Check$ = "Mc" OR Check$ = "Le" OR MID$(Temp$, 2, 1) = "'" THEN
- MID$(Temp$, 3, 1) = UCASE$(MID$(Temp$, 3, 1))
- END IF
- 'Van and Mac
- Check$ = LEFT$(Temp$, 3)
- IF Check$ = "Van" OR Check$ = "Mac" THEN
- MID$(Temp$, 4, 1) = UCASE$(MID$(Temp$, 4, 1))
- END IF
- NewName$ = NewName$ + Temp$
- Separator$ = "": Marker = Marker - 1 'Adjustments
- LOOP
- ProperName$ = NewName$
- END FUNCTION
-
-